Rスクリプト

スクリプトエディタを用いると コンソールにスクリプトを入力する場合と比較して作業効率がアップします. それではさっそくスクリプトエディタを使ってみましょう.

スクリプトエディタの起動

Rを起動します.

メニューの[ファイル]を開き,[新しいスクリプト]をクリックします.

スクリプトエディタに下記スクリプトを入力します.

library(ggplot2)
g<-ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width,color=Species))
g<-g+geom_point()
g

Rスクリプトの実行

つぎに入力したスクリプトを実行します. メニュー[編集]を開き,[全て実行]をクリックします.

するとコンソールにスクリプトが入力され, グラフが表示されます.

Rスクリプトの編集

スクリプトの一部を変更します.ここでは回帰直線を追加します.

library(ggplot2)
g<-ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width,color=Species))
g<-g+geom_point()+geom_smooth(method="lm")
g

変更後のスクリプトを実行します.

メニュー[編集]を開き,[全て実行]をクリックします.

コンソールにスクリプトが入力され, グラフが表示されます.

追加した回帰直線がちゃんと描画されています.

Rスクリプトの保存

ファイルにスクリプトを保存します. メニュー[ファイル]を開き,[保存]をクリックします.

保存ダイアログが表示されます.

適当な名前を付けて(ここでは hoge.r とする)保存します.

スクリプトの保存に成功すると, タイトルバーに保存したファイルのフルパスが表示されます.

Rスクリプトの読み込み

保存したRスクリプトを読み込みます.

メニューの[ファイル]を開き[スクリプトを開く]をクリックします.

メニュー[編集]を開き,[全て実行]をクリックします.

コンソールにスクリプトが入力され, グラフが表示されます.追加した回帰直線も描画されています.

★★(二つ星)オープンデータ

「★★(二つ星)オープンデータ」とは「5 Star OPEN DATA」の第二段階にあたるデータです. オープンライセンス(Open License;OL)での公開に加え, 読み込み可能(Readable;RE)なデータであることが条件となります.

5 Star OPEN DATA」

5 Star OPEN DATA」

「★★(二つ星)オープンデータ」の代表例はExcelファイルです. Excelファイルのデータであれば,Excelを用いてのデータ処理が可能となります. 前回の演習のように,PDFファイルからテキストを抽出し,整形してから処理するといった手間が不要となります.

それでは「★★(二つ星)オープンデータ」のデータ処理に取り組んでいきましょう.

統計データの可視化

本演習では総務省統計局が公開する「日本の統計2016」の人口推移データを可視化します.

データの入手

総務省統計局のホームページから人口推移データをダウンロードします.

  1. 総務省統計局のホームページ( http://www.stat.go.jp/index.htm )にアクセスします.

  2. [統計データ]>[日本の統計]>[本書の内容]の順番にリンクを辿ります.

  3. [第2章 人口・世帯]のリンクをクリックし、[2- 1 人口の推移と将来人口(エクセル:40KB)]をダウンロードします.

  4. ダウンロードしたファイルをRの作業ディレクトリに設置します.

作業ディレクトリが不明な場合は,Rのコンソール画面に下記コマンドを入力して下さい. 作業ディレクトリのフルパスが表示されます.

getwd()

これでデータ処理の準備が整いました.

あと蛇足とはなりますが,予めデータの所在地(URL)がわかっている場合はRから直接ファイルをダウンロードすることができます.

download.file(url="http://www.stat.go.jp/data/nihon/zuhyou/n160200100.xls",destfile = "n160200100.xls",mode="wb")

これだけでファイルのダウンロードが完了します.

データの読み込み

環境変数JAVA_HOMEの確認

本演習では Excel ファイルの読み込みに xlsx パッケージを用います. xlsx パッケージは内部でJAVAを利用します.

下記コマンドを実行し, 環境変数JAVA_HOMEを設定してください. ※JAVA_HOMEのパスは適宜環境に合わせて変更して下さい.

Sys.setenv(JAVA_HOME="C:/Program Files/Java/jre1.8.0_101")

念のため設定内容を確認します.

Sys.getenv("JAVA_HOME")

パッケージの読み込み(インストール)

演習で利用するパッケージを読み込みます.

if(!require(xlsx)){
  install.packages("xlsx")
  library(xlsx)
}
if(!require(reshape2)){
  install.packages("reshape2")
  library(reshape2)
}
if(!require(ggplot2)){
  install.packages("ggplot2")
  library(ggplot2)
}

xlsx パッケージのインストール(読み込み)でエラーが発生する場合は JAVAのインストール状況および環境変数を確認して下さい.

日本語フォント設定

日本語表示のためのフォント設定を行います.

#游ゴシック体を使う
if(.Platform$OS.type=="windows")
  windowsFonts(yugo=windowsFont("Yu Gothic"))
if(capabilities("aqua"))
  quartzFonts(yugo=quartzFont(rep("YuGo-Medium",4)))

Excelファイルの読み込み

Excelファイルを読み込み,一部内容を表示します.

# n160200100.xls のシート1を読み込む
tbl <- read.xlsx(file = "n160200100.xls",sheetIndex = 1,encoding = "UTF-8")
head(tbl)
##   第2章..人口.世帯.......... NA. NA..1             NA..2 NA..3 NA..4
## 1                        <NA>  NA  <NA>              <NA>  <NA>  <NA>
## 2                        <NA>  NA  <NA>              <NA>  <NA>  <NA>
## 3                       年次   NA  <NA> 総人口(1,000人)  <NA>  <NA>
## 4                        <NA>  NA  <NA>             総数    男    女 
## 5                        <NA>  NA  <NA>              <NA>  <NA>  <NA>
## 6                        <NA>  NA  <NA>              <NA>  <NA>  <NA>
##                          NA..5     NA..6     NA..7     NA..8
## 1                         <NA>      <NA>      <NA>      <NA>
## 2                         <NA>      <NA>      <NA>      <NA>
## 3 人口増減 (1,000人)   1)      <NA>      <NA>      <NA>
## 4                   増減数 2)  自然増減                 <NA>
## 5                         <NA>      <NA> 出生児数  死亡者数 
## 6                         <NA>      <NA>      <NA>      <NA>
##                          NA..9                              NA..10
## 1 2-1 人 口 の 推 移 と                     将 来 人 口 
## 2                         <NA>                                <NA>
## 3                         <NA> 対前年\n増減率\n(人口1,000につき)
## 4                    社会増減                                 <NA>
## 5                         <NA>                                <NA>
## 6                         <NA>                                <NA>
##                    NA..11                         NA..12
## 1                    <NA>                           <NA>
## 2                    <NA>                           <NA>
## 3 人口密度\n\n(人/km2) 年齢3区分別人口(1,000人) 3)
## 4                    <NA>          0~14歳\n(年少\n人口)
## 5                    <NA>                           <NA>
## 6                    <NA>                           <NA>
##                        NA..13                   NA..14
## 1                        <NA>                     <NA>
## 2                        <NA>                     <NA>
## 3                        <NA>                     <NA>
## 4 15~64\n(生産年齢\n人口)  65歳以上\n(老年\n人口)
## 5                        <NA>                     <NA>
## 6                        <NA>                     <NA>
##                         NA..15                  NA..16
## 1                         <NA>                    <NA>
## 2                         <NA>                    <NA>
## 3 年齢3区分別人口構成比(%)4)                    <NA>
## 4        0~14歳(年少\n人口) 15~64(生産年齢人口) 
## 5                         <NA>                    <NA>
## 6                         <NA>                    <NA>
##                     NA..17 NA..18 NA..19 NA..20 NA..21
## 1                     <NA>     NA   <NA>     NA   <NA>
## 2                     <NA>     NA   <NA>     NA   <NA>
## 3                     <NA>     NA  年次      NA   <NA>
## 4 65歳以上\n(老年\n人口)     NA   <NA>     NA   <NA>
## 5                     <NA>     NA   <NA>     NA   <NA>
## 6                     <NA>     NA   <NA>     NA   <NA>

データ加工

総人口(総数,男,女)データを抽出します.

# 処理に必要な箇所を取り出す
tbl<-tbl[7:44,4:6]
tbl
##     NA..2 NA..3 NA..4
## 7   55963 28044 27919
## 8   59737 30013 29724
## 9   64450 32390 32060
## 10  69254 34734 34520
## 11  71933 35387 36546
## 12  72147   ...   ...
## 13  84115 41241 42873
## 14  90077 44243 45834
## 15  94302 46300 48001
## 16  99209 48692 50517
## 17 104665 51369 53296
## 18 111940 55091 56849
## 19 117060 57594 59467
## 20 121049 59497 61552
## 21 123611 60697 62914
## 22 125570 61574 63996
## 23 126926 62111 64815
## 24 127768 62349 65419
## 25 127901 62387 65514
## 26 128033 62424 65608
## 27 128084 62422 65662
## 28 128032 62358 65674
## 29 128057 62328 65730
## 30 127799 62184 65615
## 31 127515 62029 65486
## 32 127298 61909 65388
## 33 127083 61801 65282
## 34   <NA>  <NA>  <NA>
## 35 124100 60146 63954
## 36 120659 58337 62322
## 37 116618 56253 60364
## 38 112124 53980 58144
## 39 102210 49131 53079
## 40  91933 44140 47794
## 41  81355 38935 42420
## 42  70689 33901 36788
## 43  61434 29515 31919
## 44  53322 25585 27737
# データ欠損がある行を削除する
tbl<-tbl[c(-6,-28),]
tbl
##     NA..2 NA..3 NA..4
## 7   55963 28044 27919
## 8   59737 30013 29724
## 9   64450 32390 32060
## 10  69254 34734 34520
## 11  71933 35387 36546
## 13  84115 41241 42873
## 14  90077 44243 45834
## 15  94302 46300 48001
## 16  99209 48692 50517
## 17 104665 51369 53296
## 18 111940 55091 56849
## 19 117060 57594 59467
## 20 121049 59497 61552
## 21 123611 60697 62914
## 22 125570 61574 63996
## 23 126926 62111 64815
## 24 127768 62349 65419
## 25 127901 62387 65514
## 26 128033 62424 65608
## 27 128084 62422 65662
## 28 128032 62358 65674
## 29 128057 62328 65730
## 30 127799 62184 65615
## 31 127515 62029 65486
## 32 127298 61909 65388
## 33 127083 61801 65282
## 35 124100 60146 63954
## 36 120659 58337 62322
## 37 116618 56253 60364
## 38 112124 53980 58144
## 39 102210 49131 53079
## 40  91933 44140 47794
## 41  81355 38935 42420
## 42  70689 33901 36788
## 43  61434 29515 31919
## 44  53322 25585 27737

和暦は扱いづらいので西暦を設定します.

# 列yearを追加する
tbl$year <- c(1920,1925,1930,1935,1940,1950,1955,1960,1965,1970,1975,1980,1985,1990,1995,2000,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2020,2025,2030,2035,2045,2055,2065,2075,2085,2095)
# 上記の変わりにcbindを使ってもよい
#tbl<-cbind(tbl,year2=c(1920,1925,1930,1935,1940,1950,1955,1960,1965,1970,1975,1980,1985,1990,1995,2000,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2020,2025,2030,2035,2045,2055,2065,2075,2085,2095))
tbl
##     NA..2 NA..3 NA..4 year
## 7   55963 28044 27919 1920
## 8   59737 30013 29724 1925
## 9   64450 32390 32060 1930
## 10  69254 34734 34520 1935
## 11  71933 35387 36546 1940
## 13  84115 41241 42873 1950
## 14  90077 44243 45834 1955
## 15  94302 46300 48001 1960
## 16  99209 48692 50517 1965
## 17 104665 51369 53296 1970
## 18 111940 55091 56849 1975
## 19 117060 57594 59467 1980
## 20 121049 59497 61552 1985
## 21 123611 60697 62914 1990
## 22 125570 61574 63996 1995
## 23 126926 62111 64815 2000
## 24 127768 62349 65419 2005
## 25 127901 62387 65514 2006
## 26 128033 62424 65608 2007
## 27 128084 62422 65662 2008
## 28 128032 62358 65674 2009
## 29 128057 62328 65730 2010
## 30 127799 62184 65615 2011
## 31 127515 62029 65486 2012
## 32 127298 61909 65388 2013
## 33 127083 61801 65282 2014
## 35 124100 60146 63954 2020
## 36 120659 58337 62322 2025
## 37 116618 56253 60364 2030
## 38 112124 53980 58144 2035
## 39 102210 49131 53079 2045
## 40  91933 44140 47794 2055
## 41  81355 38935 42420 2065
## 42  70689 33901 36788 2075
## 43  61434 29515 31919 2085
## 44  53322 25585 27737 2095
#列名を指定する
colnames(tbl)<-c("total","male","female","year")
tbl
##     total  male female year
## 7   55963 28044  27919 1920
## 8   59737 30013  29724 1925
## 9   64450 32390  32060 1930
## 10  69254 34734  34520 1935
## 11  71933 35387  36546 1940
## 13  84115 41241  42873 1950
## 14  90077 44243  45834 1955
## 15  94302 46300  48001 1960
## 16  99209 48692  50517 1965
## 17 104665 51369  53296 1970
## 18 111940 55091  56849 1975
## 19 117060 57594  59467 1980
## 20 121049 59497  61552 1985
## 21 123611 60697  62914 1990
## 22 125570 61574  63996 1995
## 23 126926 62111  64815 2000
## 24 127768 62349  65419 2005
## 25 127901 62387  65514 2006
## 26 128033 62424  65608 2007
## 27 128084 62422  65662 2008
## 28 128032 62358  65674 2009
## 29 128057 62328  65730 2010
## 30 127799 62184  65615 2011
## 31 127515 62029  65486 2012
## 32 127298 61909  65388 2013
## 33 127083 61801  65282 2014
## 35 124100 60146  63954 2020
## 36 120659 58337  62322 2025
## 37 116618 56253  60364 2030
## 38 112124 53980  58144 2035
## 39 102210 49131  53079 2045
## 40  91933 44140  47794 2055
## 41  81355 38935  42420 2065
## 42  70689 33901  36788 2075
## 43  61434 29515  31919 2085
## 44  53322 25585  27737 2095
#数値変換を強制する
tbl$total <- as.numeric(as.character(tbl$total))
tbl$male <- as.numeric(as.character(tbl$male))
tbl$female <- as.numeric(as.character(tbl$female))

ggplot2 で扱いやすいデータ構造に変換します.

# yearとtotalをキーにデータをKEY-VALUE形式で再構成する.
tmp <- melt(tbl,id=c("year","total"))
# データの頭を確認する
head(tmp)
##   year total variable value
## 1 1920 55963     male 28044
## 2 1925 59737     male 30013
## 3 1930 64450     male 32390
## 4 1935 69254     male 34734
## 5 1940 71933     male 35387
## 6 1950 84115     male 41241

グラフ描画

本演習では様々なグラフを描画してみましょう.

棒グラフの描画

調査年別の総人口(男女別)を棒グラフにします.

ggplot(tmp,aes(x=year,y=value,group=variable,fill=variable))+geom_bar(stat = "identity")

geom_bar の 引数に「position=“dodge”」を指定すると,積み上げしない棒グラフとなります.

ggplot(tmp,aes(x=year,y=value,group=variable,fill=variable))+geom_bar(stat = "identity",position="dodge")

折れ線グラフの描画

調査年別の総人口を男女別折れ線グラフで可視化します.geom_line を用います.

ggplot(tmp,aes(x=year,y=value,group=variable,color=variable))+geom_line()

geom_vline を使うと任意の場所に垂直線を描画できます.

ggplot(tmp,aes(x=year,y=value,group=variable,color=variable))+geom_line()+geom_vline(aes(xintercept=2016))

同様に geom_hline を使うと任意の場所に水平線を描画できます.

max_female<-max(tbl$female)
ggplot(tmp,aes(x=year,y=value,group=variable,color=variable))+geom_line()+geom_vline(aes(xintercept=2016))+geom_hline(aes(yintercept=max_female))

linetype=“dashed” を設定すると線種を変更することができます.

ggplot(tmp,aes(x=year,y=value,group=variable,color=variable))+geom_line()+geom_vline(aes(xintercept=2016),linetype="dashed")+geom_hline(aes(yintercept=max_female),linetype="dashed")

面グラフの描画

面グラフを描画するには geom_area を用います.

ggplot(tmp,aes(x=year,y=value,group=variable,fill=variable))+geom_area()+geom_vline(aes(xintercept=2016),linetype="dashed")

Y軸のラベルが指数表現となっているのが気になります.

scale パッケージを利用することで, 指数表現を抑制します.

if(!require(scales)){
  install.packages("scales")
  library(scales)
}
ggplot(tmp,aes(x=year,y=value,group=variable,fill=variable))+geom_area()+geom_vline(aes(xintercept=2016),linetype="dashed")+ scale_y_continuous(labels=comma) 

上記に加えて geom_line を追加します.このようにグラフ種別ごとに指定するデータ列を指定することができます.

ggplot(tmp,aes(x=year,y=value,group=variable,fill=variable))+geom_area()+geom_vline(aes(xintercept=2016),linetype="dashed")+ scale_y_continuous(labels=comma) +geom_line(aes(y=total))

なお,ggplot2 単体では二軸グラフを作成することができません(plotflow パッケージと組合せることで実現は可能です).

注釈の追加

annotate を使うと好みの場所にテキストを出力することが可能となります.

まずはベースとなるグラフを描画します.

#棒グラフを描画する
ggplot(tmp,aes(x=year,y=total))+geom_bar(stat="identity")

#折れ線グラフを描画する
ggplot(tmp,aes(x=year,y=total))+geom_line()

#人口総数の最大値を取得する
peak_value<-max(tbl$total)
#2016年の垂直線,人口総数最大の水平線を描画する.
ggplot(tmp,aes(x=year,y=total))+geom_line()+geom_vline(aes(xintercept=2016),linetype="dashed")+geom_hline(aes(yintercept=peak_value),color="red")

#人口総数最大の行を抽出する
tbl[tbl$total==peak_value,]
##     total  male female year
## 27 128084 62422  65662 2008
#人口総数最大のときの西暦を取得する
peak_year<-tbl[tbl$total==peak_value,]$year

annotate で指定箇所にテキストを表示します.

#テキストを作ります.paste は引数にある変数の値を文字列として連結します.
txt<-paste("peak(",peak_year,",",peak_value,")")
txt
## [1] "peak( 2008 , 128084 )"
# annotate でテキストを指定箇所に描画している.
ggplot(tmp,aes(x=year,y=total))+geom_line()+geom_vline(aes(xintercept=2016),linetype="dashed")+geom_hline(aes(yintercept=peak_value),color="red")+annotate("text",label=txt,x=peak_year,y=peak_value,color="red",size=3)

アノテーションの表示位置をもう少し高くする.

ggplot(tmp,aes(x=year,y=total))+geom_line()+geom_vline(aes(xintercept=2016),linetype="dashed")+geom_hline(aes(yintercept=peak_value),color="red")+annotate("text",label=txt,x=peak_year,y=peak_value+1000,color="red",size=3)

垂直線は無い方がみやすいかもしれません.

ggplot(tmp,aes(x=year,y=total))+geom_line()+geom_vline(aes(xintercept=2016),linetype="dashed")+annotate("text",label=txt,x=peak_year,y=peak_value+1000,color="red",size=3)

軸ラベル

軸ラベルを変更するには ylab,xlab あるいは labs を使います.

# xlab, ylab を使う場合
ggplot(tmp,aes(x=year,y=value,color=variable))+geom_line()+ylab("人口")+xlab("年")+theme_gray(base_family ="yugo")

#labsを使う場合
ggplot(tmp,aes(x=year,y=value,color=variable))+geom_line()+labs(x="人口",y="年")+theme_gray(base_family ="yugo")

軸目盛り

軸目盛りを変更する場合は scale_y_continuous や scale_x_continuous が使われます.

g<-ggplot(tmp,aes(x=year,y=value,color=variable))+geom_line()+ylab("人口")+xlab("年")+theme_gray(base_family ="yugo")
g

# x軸の目盛りを設定する.20000刻みで80000まで
g<-g + scale_y_continuous(breaks=seq(0,80000,by=20000),limits = c(0,80000))
g

# y軸の目盛りを設定する.50刻みで1900じゃら2100まで
g<-g+scale_x_continuous(breaks = seq(1900,2100,by=50),limits = c(1900,2100))
g

凡例ラベル

凡例ラベルの設定には scale_color_hue,scale_linetype,scale_fill_hue を用います.

まず, scale_color_hue の使い方です.色別で凡例がついている場合に用います.

#グラフを描画する
ggplot(tmp,aes(x=year,y=value,color=variable))+geom_line()

#色別で凡例がついている場合は scale_color_hue を用いる
ggplot(tmp,aes(x=year,y=value,color=variable))+geom_line()+scale_color_hue(name = "性別", labels = c(male = "男性", female = "女性"))+theme_gray(base_family ="yugo")

つぎに,scale_linetype の使い方です.線種別で凡例がついている場合に用います

ggplot(tmp,aes(x=year,y=value))+geom_line(aes(lty=variable))

ggplot(tmp,aes(x=year,y=value))+geom_line(aes(lty=variable))+scale_linetype(name = "性別", labels = c(male = "男性", female = "女性"))+theme_gray(base_family ="yugo")

最後は scale_fill_hue の使い方です.塗り色別で凡例がついている場合に用います.

ggplot(tmp,aes(x=year,y=value,fill=variable))+geom_area()

ggplot(tmp,aes(x=year,y=value,fill=variable))+geom_area()+scale_fill_hue(name = "性別", labels = c(male = "男性", female = "女性"))+theme_gray(base_family ="yugo")

日本の人口

最後にこれまでの内容をまとめて 日本の人口推移(予想)の可視化を行います.

Rスクリプトエディタで保存してから実行してみてください. ファイル名は「ex00.R」としてください.

#パッケージの読み込み
if(!require(xlsx)){
  install.packages("xlsx")
  library(xlsx)
}
if(!require(reshape2)){
  install.packages("reshape2")
  library(reshape2)
}
if(!require(ggplot2)){
  install.packages("ggplot2")
  library(ggplot2)
}
if(!require(scales)){
  install.packages("scales")
  library(scales)
}

#游ゴシック体を使う
if(.Platform$OS.type=="windows")
  windowsFonts(yugo=windowsFont("Yu Gothic"))
if(capabilities("aqua"))
  quartzFonts(yugo=quartzFont(rep("YuGo-Medium",4)))

#Excelファイルの読み込み
tbl <- read.xlsx("n160200100.xls",sheetIndex = 1,encoding = "UTF-8")
#データの整理・加工
tbl<-tbl[7:44,4:6]
tbl<-tbl[c(-6,-28),]
tbl<-cbind(tbl,year=c(1920,1925,1930,1935,1940,1950,1955,1960,1965,1970,1975,1980,1985,1990,1995,2000,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2020,2025,2030,2035,2045,2055,2065,2075,2085,2095))
colnames(tbl)<-c("total","male","female","year")
tbl$total <- as.numeric(as.character(tbl$total))
tbl$male <- as.numeric(as.character(tbl$male))
tbl$female <- as.numeric(as.character(tbl$female))
tmp <- melt(tbl,id=c("year","total"))

#ggplot2 での描画を準備します
g<-ggplot(tmp,aes(x=year,y=value,group=variable,fill=variable))
# 面グラフを描画します
g<-g+geom_area()
# 垂直線を描画します
g<-g+geom_vline(aes(xintercept=2016),linetype="dashed")
# y軸のラベルをカンマ桁区切りにします
g<-g+scale_y_continuous(labels=comma)
#人口総数の最大値を取得する
peak_value<-max(tbl$total)
#人口総数最大のときの西暦を取得する
peak_year<-tbl[tbl$total==peak_value,]$year
# 注釈内容を設定します.
txt<-paste("peak(",peak_year,",",peak_value,")")
# 注釈をつけます
g<-g+annotate("text",label=txt,x=peak_year,y=peak_value+1000,color="red",size=3)
# グラフタイトル,軸ラベルを設定します.
g<-g+ggtitle("日本の人口推移(予想)")+ylab(label = "人口(千人)")+xlab("年")+theme_gray(base_family ="yugo")
# 凡例ラベルを設定します.
g<-g+scale_fill_hue(name = "性別", labels = c(male = "男性", female = "女性"))
# 目盛り軸の最大値と最小値,補助目盛りの間隔を指定します
g<-g+scale_y_continuous(breaks=seq(0,150000,by=25000),limits = c(0,150000))
g<-g+scale_x_continuous(breaks = seq(1900,2100,by=50),limits = c(1900,2100))
# 描画します
g

# ファイルに保存します
ggsave("ex00.png",plot = g)

日本の人口は2008年をピークに徐々に減っていることがわかります.

課題

統計局の世界の統計にある人口データをグラフにするRスクリプトを書いてください. 各グラフのタイトルには学籍番号を必ず含めるようにして下さい.

データの入手先は以下のとおりです.

[統計データ]>[世界の統計]>[本書の内容]>[第2章  人口]>[2-1 世界人口の推移(1950~2050年) (エクセル:614KB)]

作成したグラフおよびRスクリプトをZIP形式でまとめてから提出してください.

1)地域別人口推移の可視化

以下の例を参考にグラフを作成して下さい. Rスクリプトのファイル名は「ex01.R」としてください.

ヒント:

  • read.xlsx の sheetIndex に注意してください.
  • 凡例ラベルを変更するには scale_fill_hue を使います

例:

2)人口比率(先進国・開発途上国)

以下の例を参考にグラフを描いて下さい. Rスクリプトのファイル名は「ex02.R」としてください.

ヒント:

  • 前の課題との大きな違いはデータの抽出箇所です

例:

3)【発展問題】先進国と発展途上国の人口推移

発展問題となりますので提出は任意です.以下の例を参考にグラフを描いてください. Rスクリプトのファイル名は「ex03.R」としてください.

ヒント:

  • 上記課題の百分率を実数に戻せば終いです
  • 乗算演算子は「*」,除算演算子は「/」で表します.
# 50%
x <- 50
total <- 200
a <- x / 100 * total
a
## [1] 100

例:

戻る


クリエイティブ・コモンズ・ライセンス
Masaharu Hayashi を著作者とするこの 作品 は クリエイティブ・コモンズの 表示 4.0 国際 ライセンスで提供されています。